/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once


#include "物理/intern/S_Physics.h"



struct S_物理解算器 {

	S_Physics*		m_FleX;
	S_Physics*		m_PhysX;
	S_Physics*		m_Chrono;
	S_Physics*		m_Bullet;
	S_Physics*		m_NewTon;
	S_Physics*		m_ODE;
	S_Physics*		m_PBF;



	S_物理解算器();
	~S_物理解算器();

	void	f_initFleX(uint32 flex粒子数, uint32 flex飞溅数量);
	void	f_initPhyxX();

	void	f_模拟();
	void	f_应用变换到物体();
	void	f_等待更新结束();

	void	f_取更新物体(std::vector<Mat44f>& mat, std::vector<void*>& userData);

	void	f_取多级更新物体(std::vector<Mat44f>& mat, std::vector<void*>& userData);
	void	f_取碰撞物体(std::vector<S_碰撞信息>& 碰撞信息, uint32 scenekey, E_物理引擎 物理引擎 = E_物理引擎::E_物理引擎_Bullet);


	void	f_set帧率(float32 f);


};





